let http = require('http')
let fs = require('fs')
let cheerio = require('cheerio')
let iconv = require('iconv-lite')
let GetArticle = require('./getArticles')
let superAgent = require('superagent')
let schedule = require("node-schedule")
let async = require('async')
let url = 'http://www.ithome.com/'
// let rule = new schedule.RecurrenceRule()
// rule.minute = [0, 10, 20, 30, 40, 50]
// let task = schedule.scheduleJob('* * * * *', function(){
//   console.log('scheduleRecurrenceRule:' + new Date())
//   async.waterfall([
//     (cb) => {
//       superAgent
//         .get(url)
//         .set('Connection', 'keep-alive')
//         .set('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8')
//         .set('User-Agent', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36')
//         .end(function(err, res){
//            if (err || !res.ok) {
//              alert('Oh no! error')
//              cb(false)
//            } else {
//              // sres.text 里面存储着网页的 html 内容，将它传给 cheerio.load 之后
//              // 就可以得到一个实现了 jquery 接口的变量，我们习惯性地将它命名为 `$`
//              // 剩下就都是 jquery 的内容了
//              var $ = cheerio.load(res.text);
//              let links = []
//              $('.new-list li a').each(function(i, elem) {
//                let link = {}
//                link.title = $(this).text()
//                link.link = $(this).attr('href') //补齐 URL 信息
//                // console.log($(this).text())
//                links.push(link)
//              })
//              let count = 0
//              async.eachSeries(links, (item, callback) => {
//                GetArticle.getArticle(item, count++, callback)
//                // callback()
//              }, () => {
//                //...
//                cb(true)
//              })
//            }
//          })
//       // http.get({
//       //   host: 'www.ithome.com',
//       //   port: 80,
//       //   path: '/',
//       //   headers: {
//       //     'Connection': 'keep-alive',
//       //     'Content-Length': 111,
//       //     'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
//       //     'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36'
//       //   }
//       // }, (res) => {
//       //   let chunks = []
//       //   res.on('data', (chunk) => {
//       //     chunks.push(chunk)
//       //   })
//       //   res.on('end', function() {
//       //     let html = iconv.decode(Buffer.concat(chunks), 'utf-8') //转码操作
//       //     // console.log(html)
//       //     let $ = cheerio.load(html, {
//       //       decodeEntities: false
//       //     })
//       //     // var content = $("tbody")
//           // let links = []
//           // $('.new-list li a').each(function(i, elem) {
//           //   let link = {}
//           //   link.title = $(this).text()
//           //   link.link = $(this).attr('href') //补齐 URL 信息
//           //   // console.log($(this).text())
//           //   links.push(link)
//           // })
//           // let count = 0
//           // async.eachSeries(links, (item, callback) => {
//           //   GetArticle.getArticle(item, count++, callback)
//           //   // callback()
//           // }, () => {
//           //   //...
//           //   cb(true)
//           // })
//       //   }).on('error', function(res) {
//       //     console.log(res)
//       //     cb(false)
//       //   })
//       // })
//     }
//   ], (res) => {
//     console.log('完美！')
//     console.log('scheduleRecurrenceRule:' + new Date())
//     process.exit()
//   })
// })
async.waterfall([
    (cb1) => {
      superAgent
      .get(url)
      .set('Connection', 'keep-alive')
      .set('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8')
      .set('User-Agent', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36')
      .end(function(err, res){
        if (err || !res.ok) {
           alert('Oh no! error')
           cb1(false)
        } else {
          // sres.text 里面存储着网页的 html 内容，将它传给 cheerio.load 之后
          // 就可以得到一个实现了 jquery 接口的变量，我们习惯性地将它命名为 `$`
          // 剩下就都是 jquery 的内容了
          var $ = cheerio.load(res.text);
          let links = []
          $('.new-list li a').each(function(i, elem) {
            let link = {}
            link.title = $(this).text()
            link.link = $(this).attr('href') //补齐 URL 信息
            // console.log($(this).text())
            links.push(link)
          })
          let count = 0
          async.eachSeries(links, (item, cb2) => {
            GetArticle.getArticle(item, ++count, cb2)
          // callback()
          }, () => {
          //...
            cb1(true)
          })
        }
      })
    }
  ], (res) => {
    console.log('完美！')
    console.log('scheduleRecurrenceRule:' + new Date())
    process.exit()
  })